#include<bits/stdc++.h>
using namespace std;
struct car{
	int d,v,a;
	bool s=false;
}c[100000];
int ins[100000];
int main(){
	freopen("detect.in","r",stdin);
	freopen("detect.out","w",stdout);
	int T;
	scanf("%d",&T);
	for(int i=0;i<T;++i){
		int n,m,l,mv,scar=0,close=0;
		scanf("%d%d%d%d",&n,&m,&l,&mv);
		for(int j=0;j<n;++j)
			scanf("%d%d%d",&c[j].d,&c[j].v,&c[j].a);
		for(int j=0;j<m;++j){
			scanf("%d",&ins[j]);
			bool closet=true;
			for(int k=0;k<n;++k){
				int gos=ins[j]-c[k].d;
				double nv=sqrt(c[k].v*c[k].v+2.0*c[k].a*gos);
				if(gos>=0&&c[k].s==false&&nv>mv){
					c[k].s=true;
					closet=false;
					scar++;
				}
			}
			if(closet)
				close++;
		}
		cout<<scar<<' '<<close<<'\n';
		for(int j=0;j<n;++j)
			c[j].s=false;
	}
	return 0;
}
